Running Module 1 and Module 2 on the cluster

Not for the faint of hart

Bash scripts

Running an R script on the cluster requires two parts: an R script with the code to be run and a PBS script to control how that R script is run on the cluster.

There are two different clusters at Wustl.edu, an old and a new cluster. This script runs the R code on the new cluster.

#!/bin/bash
#PBS -N Four_model_run 
#PBS -V                     
#PBS -l walltime=23:59:00               
#PBS -l pmem=1200mb 
#PBS -l nodes=1:ppn=1:haswell 
#PBS -t 1-1000


echo $PBS_ARRAYID

cd /home/cbotero/mydirectory/Four_model_compare
module load R

export R_LIBS=$HOME/rlibs
#R CMD INSTALL --library=/home/ttuff/rlibs  FARM_1.0.tar.gz

Rscript --vanilla ./FARM_four_model_compare.R ${PBS_ARRAYID}

We were regularly causing problems running to many jobs on the new cluster and we were asked to move to the old cluster. This cluster has slower individual processors, but we can run more jobs at one time, so productivity has stayed about the same.

#!/bin/bash
#PBS -N FARM_third_run_old 
#PBS -V                     
#PBS -l walltime=160:00:00              
#PBS -l pmem=1200mb 
#PBS -q old
#PBS -l nodes=1:ppn=1:nehalem 
#PBS -t 1-500


echo $PBS_ARRAYID

cd /home/ttuff/mydirectory/Four_model_compare
module load R

export R_LIBS=$HOME/rlibs
#R CMD INSTALL --library=/home/ttuff/rlibs  FARM_1.0.tar.gz

Rscript --vanilla ./FARM_four_model_compare.R ${PBS_ARRAYID} 

Passing arguements to R-script

The final argument in the #PBS script above (#PBS -t 1-500) controls the serial running schema for running many simultanious instances of the R script at a time. This argument is passes to R as an integer value using the following arguements inside R.

args <- commandArgs(trailingOnly = FALSE) #7 elements are passed from the PBS

NAI <- as.numeric(args[7]) # the seventh of those elements is the array integer.

Here is a working example of how to set up the R script.

#install.packages("rfoaas")
library(rfoaas)

##If the PBS script started this code running and passed the number 13
##to this particular run of a larger serial set. 


#args <- commandArgs(trailingOnly = FALSE) 

NAI <- 13 #as.numeric(args[7])

    sayHello <- function(loop_number){
      print(paste0("I can count to ", loop_number, "!   ", cool(from="Ty")))
    }

    sayHello(NAI)

Accessing and working with the cluster

You logon to the cluster using linux/unix code from the command line terminal on you computer. Open the terminal and put in you login info.

ssh -Y ttuff@login.chpc.wustl.edu
password:_______

Upon first login, you will be in a folder called ‘HOME’ with a series of system files in it. You will want to use an FTP client to view and organize these files. I prefer Filezilla, but there are several other good clients available for free. Download filezilla, make sure it’s in your applications folder, and open it. You should see a window that looks like a newer version of this. The left panels are the files on the computer you’re working from and the right two panels will show the files on the server once you log in through Filezilla also.

A fresh Filezilla window

A fresh Filezilla window

Start a new server link

Start a new server link

Start a new site and name that new site

Start a new site and name that new site

Select a secure ssh file transfer protocol

Select a secure ssh file transfer protocol

Login as normal

Login as normal

Enter password

Enter password

You need to create two new directories (folders) for us to work out of. Call one rlibs and the other mydirectory

You need to create two new directories (folders) for us to work out of. Call one ‘rlibs’ and the other ‘mydirectory’

Within mydirectory, create another folder called Four_model_compare

Within mydirectory, create another folder called ‘Four_model_compare’

Within Four_model_compare, create two folders called Module_1_outputs and Module_2_outputs. Then drag three files from your computer files on the left to the server folders on the right: one .R file, one .pbs file, and a zip file with the package FARM in it. These should be named FARM_four_model_compare.R, FARM_four_model_compare_old_cluster.pbs, and FARM_1.0.tar.gz .

Within ‘Four_model_compare’, create two folders called ‘Module_1_outputs’ and ‘Module_2_outputs’. Then drag three files from your computer files on the left to the server folders on the right: one .R file, one .pbs file, and a zip file with the package FARM in it. These should be named FARM_four_model_compare.R, FARM_four_model_compare_old_cluster.pbs, and FARM_1.0.tar.gz .

Once logged in, you need to change the directory

cd /home/ttuff/mydirectory/Four_model_compare
LS0tCnRpdGxlOiAnRC1wbGFjZSBGQVJNIGRvY3VtZW50YXRpb246IFJ1bm5pbmcgc2ltdWxhdGlvbnMgb24gdGhlIGNsdXN0ZXInCmF1dGhvcjogIlR5IFR1ZmYsIEJydW5vIFZpbGVsYSwgYW5kIENhcmxvcyBCb3Rlcm8iCmRhdGU6ICdwcm9qZWN0IGJlZ2FuOiAxNSBNYXkgMjAxNiwgZG9jdW1lbnQgdXBkYXRlZDogYHIgc3RyZnRpbWUoU3lzLnRpbWUoKSwgZm9ybWF0ICA9CiAgIiVkICVCICVZIilgJwpvdXRwdXQ6CiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIGh0bWxfZG9jdW1lbnQ6IGRlZmF1bHQKICB3b3JkX2RvY3VtZW50OiBkZWZhdWx0CmJpYmxpb2dyYXBoeTogRkFSTSBwYWNrYWdlLmJpYgotLS0KCiMgUnVubmluZyBNb2R1bGUgMSBhbmQgTW9kdWxlIDIgb24gdGhlIGNsdXN0ZXIKCiMjIE5vdCBmb3IgdGhlIGZhaW50IG9mIGhhcnQKCgojIyBCYXNoIHNjcmlwdHMKUnVubmluZyBhbiBSIHNjcmlwdCBvbiB0aGUgY2x1c3RlciByZXF1aXJlcyB0d28gcGFydHM6IGFuIFIgc2NyaXB0IHdpdGggdGhlIGNvZGUKdG8gYmUgcnVuIGFuZCBhIFBCUyBzY3JpcHQgdG8gY29udHJvbCBob3cgdGhhdCBSIHNjcmlwdCBpcyBydW4gb24gdGhlIGNsdXN0ZXIuCgoKVGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgY2x1c3RlcnMgYXQgV3VzdGwuZWR1LCBhbiBvbGQgYW5kIGEgbmV3IGNsdXN0ZXIuIFRoaXMKc2NyaXB0IHJ1bnMgdGhlIFIgY29kZSBvbiB0aGUgbmV3IGNsdXN0ZXIuIAoKCmBgYHtiYXNoIGV2YWw9RkFMU0V9CiMhL2Jpbi9iYXNoCiNQQlMgLU4gRm91cl9tb2RlbF9ydW4gCiNQQlMgLVYgCQkJCQkKI1BCUyAtbCB3YWxsdGltZT0yMzo1OTowMAkJCQkKI1BCUyAtbCBwbWVtPTEyMDBtYiAKI1BCUyAtbCBub2Rlcz0xOnBwbj0xOmhhc3dlbGwgCiNQQlMgLXQgMS0xMDAwCgoKZWNobyAkUEJTX0FSUkFZSUQKCmNkIC9ob21lL2Nib3Rlcm8vbXlkaXJlY3RvcnkvRm91cl9tb2RlbF9jb21wYXJlCm1vZHVsZSBsb2FkIFIKCmV4cG9ydCBSX0xJQlM9JEhPTUUvcmxpYnMKI1IgQ01EIElOU1RBTEwgLS1saWJyYXJ5PS9ob21lL3R0dWZmL3JsaWJzICBGQVJNXzEuMC50YXIuZ3oKClJzY3JpcHQgLS12YW5pbGxhIC4vRkFSTV9mb3VyX21vZGVsX2NvbXBhcmUuUiAke1BCU19BUlJBWUlEfQpgYGAKCgpXZSB3ZXJlIHJlZ3VsYXJseSBjYXVzaW5nIHByb2JsZW1zIHJ1bm5pbmcgdG8gbWFueSBqb2JzIG9uIHRoZSBuZXcgY2x1c3RlciBhbmQgCndlIHdlcmUgYXNrZWQgdG8gbW92ZSB0byB0aGUgb2xkIGNsdXN0ZXIuIFRoaXMgY2x1c3RlciBoYXMgc2xvd2VyIGluZGl2aWR1YWwgCnByb2Nlc3NvcnMsIGJ1dCB3ZSBjYW4gcnVuIG1vcmUgam9icyBhdCBvbmUgdGltZSwgc28gcHJvZHVjdGl2aXR5IGhhcyBzdGF5ZWQgCmFib3V0IHRoZSBzYW1lLiAKCmBgYHtiYXNoIGV2YWw9RkFMU0V9CiMhL2Jpbi9iYXNoCiNQQlMgLU4gRkFSTV90aGlyZF9ydW5fb2xkIAojUEJTIC1WIAkJCQkJCiNQQlMgLWwgd2FsbHRpbWU9MTYwOjAwOjAwCQkJCQojUEJTIC1sIHBtZW09MTIwMG1iIAojUEJTIC1xIG9sZAojUEJTIC1sIG5vZGVzPTE6cHBuPTE6bmVoYWxlbSAKI1BCUyAtdCAxLTUwMAoKCmVjaG8gJFBCU19BUlJBWUlECgpjZCAvaG9tZS90dHVmZi9teWRpcmVjdG9yeS9Gb3VyX21vZGVsX2NvbXBhcmUKbW9kdWxlIGxvYWQgUgoKZXhwb3J0IFJfTElCUz0kSE9NRS9ybGlicwojUiBDTUQgSU5TVEFMTCAtLWxpYnJhcnk9L2hvbWUvdHR1ZmYvcmxpYnMgIEZBUk1fMS4wLnRhci5negoKUnNjcmlwdCAtLXZhbmlsbGEgLi9GQVJNX2ZvdXJfbW9kZWxfY29tcGFyZS5SICR7UEJTX0FSUkFZSUR9IAoKYGBgCgojIyBQYXNzaW5nIGFyZ3VlbWVudHMgdG8gUi1zY3JpcHQKVGhlIGZpbmFsIGFyZ3VtZW50IGluIHRoZSAjUEJTIHNjcmlwdCBhYm92ZSAoI1BCUyAtdCAxLTUwMCkgY29udHJvbHMgdGhlIHNlcmlhbCAKcnVubmluZyBzY2hlbWEgZm9yIHJ1bm5pbmcgbWFueSBzaW11bHRhbmlvdXMgaW5zdGFuY2VzIG9mIHRoZSBSIHNjcmlwdCBhdCBhIAp0aW1lLiBUaGlzIGFyZ3VtZW50IGlzIHBhc3NlcyB0byBSIGFzIGFuIGludGVnZXIgdmFsdWUgdXNpbmcgdGhlIGZvbGxvd2luZwphcmd1ZW1lbnRzIGluc2lkZSBSLiAKYGBge3IgZXZhbD1GQUxTRX0KCmFyZ3MgPC0gY29tbWFuZEFyZ3ModHJhaWxpbmdPbmx5ID0gRkFMU0UpICM3IGVsZW1lbnRzIGFyZSBwYXNzZWQgZnJvbSB0aGUgUEJTCgpOQUkgPC0gYXMubnVtZXJpYyhhcmdzWzddKSAjIHRoZSBzZXZlbnRoIG9mIHRob3NlIGVsZW1lbnRzIGlzIHRoZSBhcnJheSBpbnRlZ2VyLgoKYGBgCgoKSGVyZSBpcyBhIHdvcmtpbmcgZXhhbXBsZSBvZiBob3cgdG8gc2V0IHVwIHRoZSBSIHNjcmlwdC4KYGBge3J9CiNpbnN0YWxsLnBhY2thZ2VzKCJyZm9hYXMiKQpsaWJyYXJ5KHJmb2FhcykKCiMjSWYgdGhlIFBCUyBzY3JpcHQgc3RhcnRlZCB0aGlzIGNvZGUgcnVubmluZyBhbmQgcGFzc2VkIHRoZSBudW1iZXIgMTMKIyN0byB0aGlzIHBhcnRpY3VsYXIgcnVuIG9mIGEgbGFyZ2VyIHNlcmlhbCBzZXQuIAoKCiNhcmdzIDwtIGNvbW1hbmRBcmdzKHRyYWlsaW5nT25seSA9IEZBTFNFKSAKCk5BSSA8LSAxMyAjYXMubnVtZXJpYyhhcmdzWzddKQoKCXNheUhlbGxvIDwtIGZ1bmN0aW9uKGxvb3BfbnVtYmVyKXsKICAgCSAgcHJpbnQocGFzdGUwKCJJIGNhbiBjb3VudCB0byAiLCBsb29wX251bWJlciwgIiEgICAiLCBjb29sKGZyb209IlR5IikpKQoJfQoKCXNheUhlbGxvKE5BSSkKCmBgYAoKIyMgQWNjZXNzaW5nIGFuZCB3b3JraW5nIHdpdGggdGhlIGNsdXN0ZXIKWW91IGxvZ29uIHRvIHRoZSBjbHVzdGVyIHVzaW5nIGxpbnV4L3VuaXggY29kZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUgCnRlcm1pbmFsIG9uIHlvdSBjb21wdXRlci4gT3BlbiB0aGUgdGVybWluYWwgYW5kIHB1dCBpbiB5b3UgbG9naW4gaW5mby4KCgpgYGB7YmFzaCBldmFsPUZBTFNFfQpzc2ggLVkgdHR1ZmZAbG9naW4uY2hwYy53dXN0bC5lZHUKcGFzc3dvcmQ6X19fX19fXwpgYGAKClVwb24gZmlyc3QgbG9naW4sIHlvdSB3aWxsIGJlIGluIGEgZm9sZGVyIGNhbGxlZCAnSE9NRScgd2l0aCBhIHNlcmllcyBvZiBzeXN0ZW0gCmZpbGVzIGluIGl0LiBZb3Ugd2lsbCB3YW50IHRvIHVzZSBhbiBGVFAgY2xpZW50IHRvIHZpZXcgYW5kIG9yZ2FuaXplIHRoZXNlIApmaWxlcy4gSSBwcmVmZXIgRmlsZXppbGxhLCBidXQgdGhlcmUgYXJlIHNldmVyYWwgb3RoZXIgZ29vZCBjbGllbnRzIGF2YWlsYWJsZSAKZm9yIGZyZWUuIERvd25sb2FkIGZpbGV6aWxsYSwgbWFrZSBzdXJlIGl0J3MgaW4geW91ciBhcHBsaWNhdGlvbnMgZm9sZGVyLCBhbmQKb3BlbiBpdC4gWW91IHNob3VsZCBzZWUgYSB3aW5kb3cgdGhhdCBsb29rcyBsaWtlIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGlzLiBUaGUgCmxlZnQgcGFuZWxzIGFyZSB0aGUgZmlsZXMgb24gdGhlIGNvbXB1dGVyIHlvdSdyZSB3b3JraW5nIGZyb20gYW5kIHRoZSByaWdodAp0d28gcGFuZWxzIHdpbGwgc2hvdyB0aGUgZmlsZXMgb24gdGhlIHNlcnZlciBvbmNlIHlvdSBsb2cgaW4gdGhyb3VnaCBGaWxlemlsbGEKYWxzby4gCgohW0EgZnJlc2ggRmlsZXppbGxhIHdpbmRvd10oRmlsZXppbGxhLnBuZykKCiFbU3RhcnQgYSBuZXcgc2VydmVyIGxpbmtdKHNpdGUgbWFuYWdlci5wbmcpCgoKCgohW1N0YXJ0IGEgbmV3IHNpdGUgYW5kIG5hbWUgdGhhdCBuZXcgc2l0ZV0oTmV3IHNpdGUgbmFtZS5wbmcpCgoKIVtTZWxlY3QgYSBzZWN1cmUgc3NoIGZpbGUgdHJhbnNmZXIgcHJvdG9jb2xdKFNGVFAucG5nKQoKCiFbTG9naW4gYXMgbm9ybWFsXShDaG9vc2Ugbm9ybWFsLnBuZykKCgohW0VudGVyIHBhc3N3b3JkXShFbnRlciBwYXNzd29yZC5wbmcpCgoKIVtZb3UgbmVlZCB0byBjcmVhdGUgdHdvIG5ldyBkaXJlY3RvcmllcyAoZm9sZGVycykgZm9yIHVzIHRvIHdvcmsgb3V0IG9mLiBDYWxsIG9uZSAncmxpYnMnIGFuZCB0aGUgb3RoZXIgJ215ZGlyZWN0b3J5J10oQ3JlYXRlIHR3byBmaWxlcyB3aXRoaW4geW91ciBob21lIGZpbGUucG5nKQoKCiFbV2l0aGluIG15ZGlyZWN0b3J5LCBjcmVhdGUgYW5vdGhlciBmb2xkZXIgY2FsbGVkICdGb3VyX21vZGVsX2NvbXBhcmUnXShDcmVhdGUgRm91cl9tb2RlbHNfY29tcGFyZSBmb2xkZXIucG5nKQoKIVtXaXRoaW4gJ0ZvdXJfbW9kZWxfY29tcGFyZScsIGNyZWF0ZSB0d28gZm9sZGVycyBjYWxsZWQgJ01vZHVsZV8xX291dHB1dHMnIGFuZCAnTW9kdWxlXzJfb3V0cHV0cycuIFRoZW4gZHJhZyB0aHJlZSBmaWxlcyBmcm9tIHlvdXIgY29tcHV0ZXIgZmlsZXMgb24gdGhlIGxlZnQgdG8gdGhlIHNlcnZlciBmb2xkZXJzIG9uIHRoZSByaWdodDogb25lIC5SIGZpbGUsIG9uZSAucGJzIGZpbGUsIGFuZCBhIHppcCBmaWxlIHdpdGggdGhlIHBhY2thZ2UgRkFSTSBpbiBpdC4gVGhlc2Ugc2hvdWxkIGJlIG5hbWVkIEZBUk1fZm91cl9tb2RlbF9jb21wYXJlLlIsIEZBUk1fZm91cl9tb2RlbF9jb21wYXJlX29sZF9jbHVzdGVyLnBicywgYW5kIEZBUk1fMS4wLnRhci5neiAuXShDcmVhdGUgbW9kdWxlIGZvbGRlcnMucG5nKQoKCgoKT25jZSBsb2dnZWQgaW4sIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgZGlyZWN0b3J5CmBgYHtiYXNoIGV2YWw9RkFMU0V9CmNkIC9ob21lL3R0dWZmL215ZGlyZWN0b3J5L0ZvdXJfbW9kZWxfY29tcGFyZQpgYGAKCgoKCgoKCgoKCgoKCiFbXShGaWxlcyBmcm9tIG1vZHVsZSAxLnBuZykKCiFbXShGaWxlcyBmcm9tIG1vZHVsZSAyLnBuZykKCgoKCgoKCgoKCgoKCgoKCg==